package main

import (
	"fmt"
	"mycms/core"
	_ "mycms/docs" // 千万不要忘了导入把你上一步生成的docs
	"mycms/global"
	"mycms/initialize"
	"mycms/routers"
	"time"
)

// @title Swagger API
// @version 1.0.0
// @description 文档描述信息

// @host 127.0.0.1:8889
// @BasePath /

// @securityDefinitions.apikey ApiKeyAuth
// @in header
// @name Token

func main() {
	// 加载多个APP的路由配置
	//routers.Include(routers.AdminApiRouters)

	//	初始化
	global.VIPER = core.Viper()   // 初始化配置
	global.LOG = core.Zap()       // 初始化zap日志库
	global.DB = initialize.Gorm() // gorm连接数据库
	initialize.Redis()			  // 初始化Redis
	//initialize.DBList()

	if global.DB != nil {
		initialize.RegisterTables(global.DB) // 初始化表
		db, _ := global.DB.DB()
		defer db.Close()	// 程序结束前关闭数据库链接
	}

	// 初始化路由
	r := routers.Init()
	global.LOG.Info("系统初始化完成...")	//	记录日志

	//	获取端口值
	addr := fmt.Sprintf(":%d", global.CONFIG.System.Addr)
	// 保证文本顺序输出
	time.Sleep(10 * time.Microsecond)

	fmt.Printf(`
	欢迎使用 
	当前版本:V1.0.0
	默认API地址:http://127.0.0.1%s
	默认自动化文档地址:http://127.0.0.1%s/swagger/index.html
	`, addr,addr)

	//	启动服务
	if err := r.Run(addr); err != nil {
		fmt.Println("服务启动失败, 错误信息:%v\n", err)
	}
}
